﻿/**
 *
 * @file OperAbstractLoad.h
 * @brief 用于表格的载荷操作器抽象类声明
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-25
 *
 */
#ifndef _OPER_LOAD_ABSTRACT_H___
#define _OPER_LOAD_ABSTRACT_H___

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"
#include "OperatorsInterfaceAPI.h"

namespace Acoustics
{
    class FITKAcousticsLoadManager;
    class FITKAcousticsSpectraManager;
}

namespace EventOper
{
    /**
     * @brief  载荷操作器抽象类
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-25
     */
    class OperatorsInterfaceAPI OperAbstractLoad : public Core::FITKActionOperator
    {
    public:
        OperAbstractLoad();
        virtual ~OperAbstractLoad() = 0;
        /**
         * @brief 编辑载荷
         * @param[i]  loadID            载荷对象id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void editLoad(const int loadID);
        /**
         * @brief 删除载荷
         * @param[i]  loadID          载荷对象id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void removeLoad(const int loadID);
        /**
         * @brief 批量设置属性
         * @param[i]  name           属性名
         * @param[i]  currentText    当前值
         * @param[i]  attrIndex      属性索引
         * @param[i]  loadID        载荷对象id
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        virtual void setAttribute(const QString &name, const QString& currentText, const int attrIndex, const QList<int> & loadIDs);
    protected:
        /**
         * @brief  载荷管理器
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        Acoustics::FITKAcousticsLoadManager* _loadMgr{};
        /**
        * @brief 频谱管理器
        * @author wangning (2185896382@qq.com)
        * @date 2024-12-10
        */
        Acoustics::FITKAcousticsSpectraManager* _specMgr{};

    };
}


#endif